If you can find the source for the build, you'll probably want to look in ports/<whatever it's called>/uart_core.c(edited)
3:31 p.m.
Ctrl-C handling is port specific, as it requires the uart driver to be able to flag a Ctrl-C character has been seen before uP has processed the buffer
Yes, that's how the output gets to the serial, I don't think there's any other buffering. That function just loops until it's managed to give all the characters to usb_write, and it is called directly from mp_print_* functions (via the MP_PLAT_PRINT_STRN macro).
it looks like fomu does some buffering on the usb endpoint too? (i.e. in usb_write - as far as i can tell multiple calls can be coalesced into one endpoint transmission, as opposed to usb_send)